'use strict';

function fn(a) {
  console.log(a); // function a() {}
  var a = 123;
  console.log(a); // 123
  function a() {}
  console.log(a); // 123
  var b = function () {};
  console.log(b); // function b() {}
  function d() {}
  var d = a;
  console.log(d); // 123
}

// AO: {
//   a: undefined, 1, function a() {}, 123;
//   b: undefined;
//   d: undefined, function d() {}, 123;
// }

fn(1);
